The present invention relates to rate control and buffer management during coding of digital video programs. In particular, the invention discusses rate control and buffer protection issues for transmitting multiple VBR (variable bit rate) video programs over a constant-rate channel.
In a multi-program transmission environment, several programs (e.g., channels) are coded, multiplexed and transmitted over a single communication channel. Since these programs share a limited channel capacity, the aggregate bit rate of the programs must be no greater than the communication channel rate. This can be achieved by controlling either each individual program bit rate using independent coding, or the aggregate bit rate using statistical multiplexing, also known as joint coding.
Moreover, video materials such as films and the like may be pre-compressed and stored for subsequent transmission. This presents difficulties when the stat mux attempts to integrate the pre-compressed program bit streams with the raw, uncompressed digital video sequences.
Additionally, it is necessary to ensure that the encoder and decoder buffers do not overflow or underflow.
Accordingly, it would be desirable to have a rate control and buffer protection system that addresses the above and other concerns. The system should be compatible with dynamic bit allocation strategies for joint coding of multiple video programs which assign a target bit rate for each program on a frame-by-frame basis according to the program""s relative complexity. The system should pre-determine the transmission rates of future frames so that the average input rate of each individual video stream to the respective decoder buffer is equal to the average output rate, and the total transmission rate of all programs is equal to the channel rate. The system should enable the upper and lower bonds of the encoder and decoder buffers to be measurable at the encoding end at the current frame instant.
The present invention provides a rate control and buffer protection system that provides the above and other advantages.
The present invention relates to rate control and buffer management during coding of digital video programs.
A system is presented for rate control and buffer management during coding of multiple variable bit rate digital video programs over a constant bit rate channel. Buffer fullness is modeled on a frame-by-frame basis. Buffer protection is achieved by applying additional constraints on the target rates. For encoder buffer protection, we set the upper and lower bounds for the aggregate rate of programs. For decoder buffer protection, we limit the dynamic range of each individual program rate. Both the upper and lower bounds are time-varying functions (i.e., on a frame-by-frame basis). We also pre-set the future transmission rates so that the average input rate of each individual video stream to the respective decoder buffer is equal to the average output rate, and the total transmission rate of programs is equal to the channel rate. With the pre-settings of future transmission rates for the above two conditions, the upper and lower bounds for decoder buffer protection become measurable at the current frame instant, which allows decoder buffer protection to be managed at the encoding end. The system is suitable for use in a hierarchical bit allocation scheme that includes a super group of pictures (GOP) level, a super frame level, and a frame level.
A particular method for coding a plurality L of variable bit rate video programs includes the step of allocating bits for coding the video programs according to a hierarchical scheme that includes at least: (a) a super group of pictures (GOP) level, wherein a super GOP comprises at least one GOP from each of the video programs, and has a length of N frames, and (b) a frame level. For each lth program, a transmission rate is set for the respective current nth frame according to an average number of compressed bits for at least N previous frames, including a frame starting at Nxe2x80x2+Nxe2x88x921 frames before the current frame, a frame ending at Nxe2x80x2 frames before the current frame, and intermediate frames therebetween. Nxe2x80x2 is a decoding delay of a modeled decoder that receives a respective video program.
As an example, with a super GOP length of N=45 frames, and a decoding delay of Nxe2x80x2=15 frames, the transmission rate may be set based on an average number of compressed bits for 45 previous frames, including a frame starting at 59 frames before the current frame, and a frame ending at 15 frames before the current frame.
A corresponding apparatus is also presented.